
# 1.子类继承父类 子类继承了父类的方法
# class A():
#     def foo(self):
#         print('A foo()')
#
# class B(A):
#     pass
#
# b = B()
# b.foo()

# 2.子类继承父类 子类重写父类的方法        理解：也就是子类出现与父类相同的方法（函数）时，子类优先级更高
# class A():
#     def foo(self):
#         print('A foo()')
#
# class B(A):
#     def foo(self):
#         print('B foo()')
#
# b = B()
# b.foo()

# 3.如果B类重写了父类A的方法，但是还需要调用A类中的代码     理解：那就是子类需要调用父类中的方法 但是还需要在进行一定的补充
class A():
    def foo(self):
        print('A foo()')

class B(A):
    def foo(self):
        print('B foo()1')
        # 如果B类重写了父类A的方法，但是还需要调用A类中的代码

        # 方式1 利用函数 super（） 的调用实现
        super().foo()
        # 方式2 父类名.方法名（self）
        A.foo(self)

        print('B foo()2')

b = B()
b.foo()

